/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package heraclito;

import java.io.Serializable;
import java.util.Calendar;

/**
 *
 * @author Marcel
 */
public class Log implements Serializable {

    private String id_aluno; // Matricula do aluno
    private String id_lista; // Numero da lista
    private String id_ativ; // Numero da atividade
    private String dataIniAtiv; // Data e hora de inicio da atividade
    private String dataTermAtiv; // Data e hora de termino da atividade
    private boolean sts_cp; // Status concluido ou parcial
    private boolean idle; // Idle
    private int nrSeqProva; // Indice 
    private String descProvaHip; // Prova/Hipotese
    private int nrTentativa; // Numero de tentativas de solucao
    private int nivelAjuda; // Nivel permitido de ajuda [0,3]
    private int nivelDica; // Nivel permitido de dica [0,3]
    private int nrErros; // Numero de erros de regras
    private String dataEnvio; // Data de envio do log
    private boolean enviar; // Caso seja necessario enviar ao servidor

    public Log(String id_aluno, String id_lista, String id_ativ, String descProvaHip) {
        this.id_aluno = id_aluno;
        this.id_lista = id_lista;
        this.id_ativ = id_ativ;
        this.descProvaHip = descProvaHip;
        atualiza();
        this.dataIniAtiv = this.dataEnvio;
    }

    public void setLog(String linha, int indice) {
        this.descProvaHip = linha;
        this.nrSeqProva = indice;
        atualiza();
    }

    public void setErros(int qtErros) {
        this.nrErros = qtErros;
        atualiza();
    }

    public void provaConc(String linha, int indice) {
        this.sts_cp = true;
        this.descProvaHip = linha;
        this.nrSeqProva = indice;
        atualiza();
    }
    
    private void atualiza(){
        this.enviar = true;
        this.dataEnvio = Calendar.getInstance().getTime().toString();
    }
    
    @Override
    public String toString(){
        String msg = id_aluno + ";" 
                + id_ativ + ";" 
                + id_lista + ";" 
                + dataIniAtiv + ";" 
                + dataTermAtiv + ";"
                + sts_cp + ";" 
                + idle + ";" 
                + nrSeqProva + ";" 
                + descProvaHip + ";"
                + nrTentativa + ";" 
                + nivelAjuda + ";" 
                + nivelDica + ";" 
                + nrErros + ";"
                + dataEnvio + ";";
        enviar = false;
        return msg;
    }
}
